﻿using EmpresasDeOmnibus.Models;
using Modelo;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using WebMatrix.WebData;

namespace EmpresasDeOmnibus.Controllers
{
    [Authorize]
    public class HomeController : Controller
    {
        private DaoGenerico dao;
        private TrabajoFinalDbContext db;
        private Consultas consultas;

        public HomeController()
            : base()
        {
            this.dao = new DaoGenerico();
            this.db = this.dao.db;
            this.consultas = this.dao.consultas;
        }

        //
        // GET: /Home/

        public ActionResult Index()
        {
            Usuario usuarioActual = db.Usuarios.Find(WebSecurity.CurrentUserId);
            Empresa empresa = db.Empresas.Find(usuarioActual.Empresa.Id);
            List<Localidad> localidades = db.Localidades.ToList();
            return View(model: new IndexHome(empresa, localidades));
        }

        [HttpPost]
        public ActionResult Index(int idEmpresa, int idLocalidad, DateTime FechaInicial, DateTime FechaFinal)
        {
            ViewBag.Localidad = db.Localidades.Find(idLocalidad);
            if (((FechaFinal - FechaInicial).TotalDays <= 30) && (FechaInicial <= FechaFinal))
            {
                ViewBag.ErrorFechas = false;
                List<ToqueDeDarsena> resultados = consultas.ToquesEntreFechasPorEmpresaYLocalidad(FechaInicial, FechaFinal, idEmpresa, idLocalidad).ToList();
                return View("Toques", model: resultados);
            }
            ViewBag.ErrorFechas = true;
            IndexHome viewModel = new IndexHome(db.Empresas.Find(idEmpresa), db.Localidades.ToList());
            viewModel.FechaInicial = FechaInicial;
            viewModel.FechaFinal = FechaFinal;
            return View(model: viewModel);
         }
    }
}
